MongoDB তে TLS/SSL কনফিগারেশন এবং encryption ডেটা নিরাপত্তা নিশ্চিত করতে ব্যবহৃত হয়। TLS (Transport Layer Security) এবং SSL (Secure Sockets Layer) দুটি প্রোটোকলই ডেটা ট্রান্সমিশনের সময় নিরাপত্তা প্রদান করে, যা ডেটার গোপনীয়তা এবং অখণ্ডতা নিশ্চিত করে। MongoDB তে TLS/SSL এবং encryption ব্যবহৃত হয় ডেটাবেসের নিরাপত্তা বাড়ানোর জন্য, বিশেষ করে যখন ডেটা সংবেদনশীল বা ক্লাউড পরিবেশে ব্যবহৃত হয়।
TLS/SSL কনফিগারেশন
TLS (এবং পুরোনো SSL) MongoDB সার্ভারের সাথে ক্লায়েন্টের মধ্যে নিরাপদ সংযোগ স্থাপনের জন্য ব্যবহৃত হয়। এটি ডেটার এনক্রিপশন নিশ্চিত করে, যাতে ট্রান্সমিশনের সময় ডেটা চুরি বা পরিবর্তিত না হয়।
1. MongoDB তে TLS/SSL কনফিগারেশন করার ধাপ
MongoDB তে TLS/SSL কনফিগার করতে, আপনাকে কিছু স্টেপ অনুসরণ করতে হবে:
- সার্টিফিকেট এবং কী তৈরি করুন: MongoDB TLS/SSL ব্যবহার করার জন্য একটি সার্ভার সার্টিফিকেট এবং একটি প্রাইভেট কী তৈরি করতে হবে। আপনি নিজেই একটি সার্টিফিকেট তৈরি করতে পারেন অথবা একটি সার্টিফিকেট অথরিটি (CA) থেকে সার্টিফিকেট পেতে পারেন।
সার্টিফিকেট তৈরি করতে OpenSSL ব্যবহার করতে পারেন:
openssl genpkey -algorithm RSA -out mongodb-server.key openssl req -new -key mongodb-server.key -out mongodb-server.csr openssl x509 -req -in mongodb-server.csr -signkey mongodb-server.key -out mongodb-server.crt
MongoDB কনফিগারেশন ফাইলে TLS/SSL সক্রিয় করুন: MongoDB তে TLS/SSL সক্রিয় করতে, MongoDB কনফিগারেশন ফাইল (যেমন
mongod.conf) এ নিম্নলিখিত সেটিংস যোগ করুন:net: ssl: mode: requireSSL PEMKeyFile: /path/to/mongodb-server.crt PEMKeyPassword: <password> # If the private key is encrypted CAFile: /path/to/ca.crt # (Optional) Certificate Authority fileMongoDB সার্ভার পুনরায় শুরু করুন: কনফিগারেশন সম্পন্ন হওয়ার পর, MongoDB সার্ভার পুনরায় চালু করুন:
sudo systemctl restart mongodক্লায়েন্টে SSL সক্রিয় করুন: MongoDB ক্লায়েন্টে TLS/SSL সক্রিয় করতে, আপনি নিম্নলিখিত কমান্ড ব্যবহার করতে পারেন:
mongo --ssl --sslCAFile /path/to/ca.crt --sslPEMKeyFile /path/to/mongodb-client.pem --host <server-ip> --port <port>এখানে
--sslCAFileআপনার সার্টিফিকেট অথরিটি ফাইল এবং--sslPEMKeyFileক্লায়েন্টের সার্টিফিকেট ফাইল হবে।
Encryption (এনক্রিপশন)
MongoDB তে এনক্রিপশন ডেটার গোপনীয়তা এবং সুরক্ষা নিশ্চিত করতে ব্যবহৃত হয়। MongoDB তে দুই ধরনের এনক্রিপশন ব্যবহৃত হয়: Encryption at Rest এবং Encryption in Transit।
1. Encryption in Transit
Encryption in Transit ডেটার এনক্রিপশন ট্রান্সমিশনের সময় নিশ্চিত করে। MongoDB তে TLS/SSL কনফিগারেশন ব্যবহার করে ডেটা ট্রান্সমিশনের সময় এনক্রিপশন করা হয়। এই এনক্রিপশন ডেটাকে নিরাপদ রাখে যখন এটি সার্ভার থেকে ক্লায়েন্ট বা সার্ভার থেকে সার্ভারে চলে।
- TLS/SSL সক্রিয় করার মাধ্যমে, MongoDB তে ক্লায়েন্ট এবং সার্ভার দুজনের মধ্যে যোগাযোগ এনক্রিপ্ট হয়ে যায়, ফলে ম্যান-ইন-দি-মিডল (MITM) অ্যাটাক থেকে সুরক্ষা পাওয়া যায়।
2. Encryption at Rest
Encryption at Rest হল ডেটাবেসে ডেটা স্টোর করার সময় এনক্রিপশন করা। MongoDB Encyption at Rest সমর্থন করে এবং এটি ডেটাবেসে থাকা ডেটা সুরক্ষিত রাখে যদি ড্রাইভ চুরি বা অন্য কোনো অবৈধ প্রবেশের ঘটনা ঘটে।
MongoDB তে Encryption at Rest সক্রিয় করতে আপনাকে MongoDB Enterprise ব্যবহার করতে হবে, কারণ এটি শুধুমাত্র এন্টারপ্রাইজ সংস্করণে পাওয়া যায়।
- MongoDB Encrypted Storage Engine: MongoDB এ Encrypted Storage Engine ব্যবহার করা হয়, যা ডেটাবেসের সমস্ত ডেটা এনক্রিপ্ট করে।
- প্রাইভেট কী ব্যবস্থাপনা: MongoDB এনক্রিপশন ব্যবস্থাপনায় প্রাইভেট কী সুরক্ষিত রাখার জন্য একটি কাস্টম কী ম্যানেজমেন্ট সিস্টেম (যেমন, AWS KMS) ব্যবহার করা যায়।
এনক্রিপশন কনফিগারেশন
MongoDB Enterprise এ এনক্রিপশন কনফিগার করতে, আপনার mongod.conf ফাইলে নিম্নলিখিত সেটিংস যোগ করতে হবে:
security:
encryptionKeyFile: /path/to/encryption-keyfile
enableEncryption: true
এছাড়া, MongoDB এ এনক্রিপশন কনফিগার করার জন্য Key Management সিস্টেম (KMS) যেমন AWS KMS বা Google Cloud KMS ব্যবহার করা যেতে পারে।
TLS/SSL এবং Encryption ব্যবহারের সুবিধা
- ডেটার নিরাপত্তা: TLS/SSL এবং এনক্রিপশন ডেটার নিরাপত্তা নিশ্চিত করে, বিশেষত যখন ডেটা নেটওয়ার্কের মাধ্যমে ট্রান্সফার করা হয়।
- ডেটার গোপনীয়তা: TLS/SSL এবং এনক্রিপশন ডেটার গোপনীয়তা রক্ষা করে, যা ডেটাকে অকারণে এক্সেস বা চুরির হাত থেকে সুরক্ষিত রাখে।
- ক্লাউড এবং ডিস্ট্রিবিউটেড সিস্টেমে নিরাপত্তা: ক্লাউডে বা ডিস্ট্রিবিউটেড সিস্টেমে MongoDB ব্যবহারের ক্ষেত্রে এনক্রিপশন এবং TLS/SSL অত্যন্ত গুরুত্বপূর্ণ, কারণ ডেটা বিভিন্ন সার্ভারে এবং নেটওয়ার্কে পাঠানো হয়।
সারাংশ
MongoDB তে TLS/SSL কনফিগারেশন এবং encryption ব্যবহৃত হয় ডেটার নিরাপত্তা ও গোপনীয়তা নিশ্চিত করতে। TLS/SSL ডেটা ট্রান্সমিশনের সময় এনক্রিপশন প্রদান করে, যেখানে Encryption at Rest ডেটাবেসে সংরক্ষিত ডেটাকে এনক্রিপ্ট করে। MongoDB তে এই ফিচারগুলি ব্যবহার করে ডেটা সুরক্ষিত রাখা সম্ভব হয় এবং ডেটা এক্সেসের সময় চুরি বা অবৈধ প্রবেশ প্রতিরোধ করা যায়।
Read more